<?php
namespace service;

use think\Db;



/**
 * 阿里大鱼短信服务
 * Class AlidayuService
 * @package service
 */
class AlidayuService
{

    public $sms_ali_key;
    public $sms_ali_secret;
    public $sms_ali_product;
    public $sms_ali_template;

    public function __construct()
    {
        $this->sms_ali_key = sysconf('sms_ali_key');    //LTAIiVXtkVUL35tX
        $this->sms_ali_secret = sysconf('sms_ali_secret');      //ZRorWZz7aXVL0mkA6MDHGZylCME7Zz
        $this->sms_ali_product = sysconf('sms_ali_product');        //
        $this->sms_ali_template = sysconf('sms_ali_template');      //SMS_132970089
    }


    public static function _test($mobile, $code)
    {
        $AlidayuService=new AlidayuService();
        $res = $AlidayuService->sendSMS($mobile, $code);
        return $res;
    }

    /**
     * 发送短信
     * @param $mobile  手机号码
     * @param $code    验证码
     * @return bool    短信发送成功返回true失败返回false
     */
    public function sendSMS($mobile, $code)
    {
        //时区设置：亚洲/上海
        date_default_timezone_set('Asia/Shanghai');
        //这个是你下面实例化的类

        include_once  "public/plugins/alidayu/TopClient.php";
        //这个是topClient 里面需要实例化一个类所以我们也要加载 不然会报错

        include_once  "public/plugins/alidayu/ResultSet.php";
        //这个是成功后返回的信息文件

        include_once  "public/plugins/alidayu/RequestCheckUtil.php";
        //这个是错误信息返回的一个php文件

        include_once  "public/plugins/alidayu/TopLogger.php";
        //这个也是你下面示例的类
        include_once  "public/plugins/alidayu/AlibabaAliqinFcSmsNumSendRequest.php";


        $c = new \TopClient;
        //短信内容：公司名/名牌名/产品名
        $product = $this->sms_ali_product;
        //App Key的值 这个在开发者控制台的应用管理点击你添加过的应用就有了
        $c->appkey = $this->sms_ali_key;
        //App Secret的值也是在哪里一起的 你点击查看就有了
        $c->secretKey = $this->sms_ali_secret;
        //这个是用户名记录那个用户操作
        $req = new \AlibabaAliqinFcSmsNumSendRequest;

        //短信类型 此处默认 不用修改
        $req->setSmsType("normal");
        //短信签名 必须
        $req->setSmsFreeSignName("上海赛区承办方燎焰传媒");
        //短信模板 必须
        $req->setSmsParam("{\"code\":\"$code\"}");
        //短信接收号码 支持单个或多个手机号码，传入号码为11位手机号码，不能加0或+86。群发短信需传入多个号码，以英文逗号分隔，
        $req->setRecNum("$mobile");
        //短信模板ID，传入的模板必须是在阿里大鱼“管理中心-短信模板管理”中的可用模板。
        $req->setSmsTemplateCode($this->sms_ali_template); // templateCode

        $c->format = 'json';
        //发送短信
        $resp = $c->execute($req);

        //短信发送成功返回True，失败返回false
        //if (!$resp)
        if ($resp && isset($resp->result))   // if($resp->result->success == true)
        {
//            // 从数据库中查询是否有验证码
//            $data = M('sms_log')->where("code = '$code' and add_time > " . (time() - 60 * 60))->find();
//            // 没有就插入验证码,供验证用
//            empty($data) && M('sms_log')->add(array('mobile' => $mobile, 'code' => $code, 'add_time' => time(), 'session_id' => SESSION_ID));
            return true;
        } else {
            var_dump($resp);
            return false;
        }
    }
}


?>
